package utils.random_;


import java.util.Random;

/**
 * @Description: 随机数工具类
 * @CreateTime: 2024-01-16  14:06
 * @Author: JAMILA
 * @Version: 1.0
 */

public class RandomUtil {
    /**
     * 关键技术：
     * Math.random() 返回的是 0 <= x < 1 之间的一个随机小数
     * 获取[start,end]中的随机数公式：(int)(a + Math.random() * (b-a +1) )
     */

    /**
     * 获取[0,9999]中的一个随机数
     * @return
     */
    public static int getRandom()
    {
        return getRandom(0,9999);
    }

    /**
     * 获取[0,end]中的一个随机数
     * @param end
     * @return int 随机数
     */
    public static int getRandom(int end)
    {
        return getRandom(0,end);
    }


    /**
     *获取[start,end]中的一个随机数
     * @param start 起始值
     * @param end 终止值
     * @return int 随机数
     */
    public static int getRandom(int start,int end)
    {
        return (int)(start +  Math.random() * (end - start + 1));
    }


    /**
     * 获取4位随机数字验证码字符串
     * @return
     */
    public static String getRandomCode4()
    {
        int number = getRandom(0, 9999);
        //不足4位自动补零
        String res = String.format("%04d", number);
        return res;
    }

    /**
     * 获取6位随机数字验证码字符串
     * @return
     */
    public static String getRandomCode6()
    {
        int number = getRandom(0, 999999);
        //不足6位自动补零
        String res = String.format("%06d", number);
        return res;
    }

    /**
     * 获取4位数字加字母的验证码字符串
     * @return
     */
    public static String getVerificationCode4() {
        String list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int index = r.nextInt(list.length());
            sb.append(list.charAt(index));
        }
        return sb.toString();
    }

    /**
     * 获取6位数字加字母的验证码字符串
     * @return
     */
    public static String getVerificationCode6() {
        String list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            int index = r.nextInt(list.length());
            sb.append(list.charAt(index));
        }
        return sb.toString();
    }






}
